package com.txzt.gaea.business.fund.domain.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.txzt.gaea.flow.vo.FlowBizStepVo;
import lombok.Data;
import org.beetl.sql.core.annotatoin.InsertIgnore;
import org.beetl.sql.core.annotatoin.Table;
import org.beetl.sql.core.annotatoin.UpdateIgnore;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@Table(name="tb_fund_budget")
public class FundBudget {

    /*主键id*/
    private Long id ;
    /*流程id*/
    private Long flowId;
    /*预算名称*/
    private String budgetName ;
    /*申请日期*/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date applyTime ;
    /*审核状态*/
    private Integer budgetStatus ;
    /*预算概要*/
    private String budgetSummary ;
    /*预算总金额（万）*/
    private BigDecimal budgetTotal ;
    /*附件*/
    private String budgetFile ;
    /*计划文号*/
    private String planCode ;
    /*下达经费总额(万)*/
    private BigDecimal fundTotal ;
    /*下达日期*/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date planTime ;
    /*已请领经费(万)*/
    private BigDecimal useFund ;
    /*结余经费(万)*/
    private BigDecimal remainFund ;
    /*计划文件*/
    private String planFile ;
    /*计划状态*/
    private Integer fundStatus ;
    /*备注*/
    private String remark ;
    /*创建人*/
    private Long createBy ;
    /*创建时间*/
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime ;
    /*更新人*/
    private Long updateBy ;
    /*更新时间*/
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime ;
    /*删除标志*/
    private Integer isDelete ;
    /*创建人名*/
    @UpdateIgnore
    @InsertIgnore
    private String createName;
    /*当前步骤名称*/
    @UpdateIgnore
    @InsertIgnore
    private String currentStepName;
    /*当前审核人*/
    @UpdateIgnore
    @InsertIgnore
    private String currentStepMember;

    /*请领开始日期*/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date applyTimeBegin ;
    /*请领结束日期*/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date applyTimeEnd ;

    /*当前审核流程步骤*/
    @UpdateIgnore
    @InsertIgnore
    private List<FlowBizStepVo> flowStep ;

    /*是否可审核*/
    @InsertIgnore
    @UpdateIgnore
    private boolean isCheck;
}
